package com.ferry.transport.netty.provider;

import com.ferry.transport.api.config.ChildConfig;
import com.ferry.transport.api.config.ParentConfig;
import com.ferry.transport.api.domain.Protocol;

import java.net.SocketAddress;

/**
 * Created by daiyong
 */
public interface TcpAcceptor {

	public Protocol protocol();

	SocketAddress localAddress();

	int bindPort();

	void start() throws InterruptedException;

	void start(boolean sync) throws InterruptedException;

	void shutdownGracefully();

	ProviderProcessor processor();

	void withProcessor(ProviderProcessor processor);

	ParentConfig parentConfig();

	ChildConfig childConfig();

}
